#pragma once
#include "EpilStatementCodeBase.h"
#include "EpilFunctionNameCode.h"
#include "EpilParameterListCode.h"
#include "EpilFunctionBodyExpressionCode.h"


class EpilFunctionStatementCode : public EpilStatementCodeBase
{
	EPIL_CODE_DECL( FunctionStatement );

public:
	EpilFunctionStatementCode( const EpilLexLocation & location );
	virtual ~EpilFunctionStatementCode();

	EpilFunctionNameCode *				GetFunctionName() const											{ return m_functionName; }
	void								SetFunctionName( EpilFunctionNameCode * functionName )			{ m_functionName = functionName; }
	EpilFunctionBodyExpressionCode *	GetBody() const													{ return m_body; }
	void								SetBody( EpilFunctionBodyExpressionCode * body )				{ m_body = body; }

	virtual tstring						ToEpilCode( int indent ) const;

private:
	EpilFunctionNameCode *				m_functionName;
	EpilFunctionBodyExpressionCode *	m_body;
};